home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / tridv1.zip / TRIDOOR.DOC < prev    next >
Text File  |  1990-12-19  |  37KB  |  941 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.                        T R I U M P H   S O F T W A R E
  13.  
  14.  
  15.                                   Presents
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.            ░██████████        ░██   ░███████
  23.            ░█  ░██  ░█               ░██  ░██
  24.                ░██     ░█░██  ░██    ░██  ░██  ░███   ░███  ░█░██
  25.                ░██      ░█ ░█  ░█    ░██  ░██ ░█  ░█ ░█  ░█  ░█ ░█
  26.               ░████    ░██    ░███  ░███████   ░███   ░███  ░██
  27.  
  28.  
  29.  
  30.  
  31.                          An On-Line Door Support Unit
  32.             For use with the QuickBBS System and Turbo Pascal 5.5
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                    TriDoor Written by Christopher M. Russo
  39.           TriComm Communications Support Written by Jeremy H. DuBois
  40.  
  41.         TriDoor, TriComm (c)1990 Triumph Software, All Rights Reserved.
  42.  
  43.  
  44.  
  45.  
  46.  
  47.            QuickBBS is a Registered Trademark of the QuickBBS Group.
  48.             Turbo Pascal is a Registered Trademark of Borland, Inc.
  49.  
  50.  
  51.  
  52.  
  53.               Triumph Software is not aphiliated in any way with
  54.                  either The QuickBBS Group or Borland, Inc.
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62. Triumph Software - TriDoor Documentation                              pg. i
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                                  DISCLAIMER
  69.  
  70.  
  71.      Triumph Software and  the  employees/programmers  in  conjuctions with
  72.   and/or aphiliated  with Triumph Software  can  not  be  held  responsible
  73.   for  the  condition  of any  software  recieved  through any  non-postal/
  74.   non-parcel means.  
  75.  
  76.      Nor  can  said persons  be held  responsible for  any damage caused to
  77.   media or hardware as a result of the use of any of our products.
  78.  
  79.      Triumph Software and  it's employees and  associates would like  it to
  80.   be known,  however, that  all of  their  products are  thoroughly  tested
  81.   before  leaving  our  offices.  It  is  only  in the deepest faith in our
  82.   own product that any such software is released to the public.
  83.  
  84.  
  85.  
  86. Triumph Software - TriDoor Documentation                              pg. ii
  87.  
  88.  
  89.  
  90.  
  91.  
  92.                          LIMITED LICENSING AGREEMENT
  93.  
  94.  
  95.      Triumph Software grants the user  of the unregistered TriDoor unit and
  96.    it's documentation  a limited usage license of 30 (thirty) days.  During
  97.    this period of time, the user may program/test/work with and incorporate
  98.    the TriDoor  unit  into his/her  code as long as no money is obtained in
  99.    any way  through  the use of the  TriDoor unit.  This  license  does NOT
  100.    allow for  distribution, in any way, of  code incorporating  the TriDoor
  101.    unit in any form.
  102.  
  103.      A  private  copy of  this sofware may be  obtained by  filling out the
  104.    registration form included with this software  and sending it and $45.00
  105.    check or money  order to Triumph Software.  This private copy will allow
  106.    the user  to use the  TriDoor unit as an  incorporated portion of any of 
  107.    his/her  programs/software  that are to  be used by  him/her only.  This
  108.    license  is also  extended to the users of  a Bulletin Board System that
  109.    will use,  but will  not obtain a copy of,  the user's (registered owner
  110.    of TriDoor  unit) programs/software.  This  license  does NOT  allow the
  111.    registered  owner  of the TriDoor  unit to distribute  programs/software
  112.    for money  or compensation  of any sort.  A limited distribution license
  113.    is  extended  to  private  copy  owners  in  that  they  may  distribute
  114.    software  incorporating  the  TriDoor  unit  as  long  as  no  money  or
  115.    compensation in  any way  is recieved in  payment for  said software and 
  116.    that  Triumph Software is given full and acceptable  credit for the door 
  117.    and communications support.  A  sample of  acceptable credit is included 
  118.    in this package.
  119.  
  120.      A  commercial copy of this sofware may be  obtained by filling out the
  121.    registration form included with this package  and sending it and $100.00
  122.    check  or money  order to Triumph  Software.  This  commercial copy will
  123.    allow  the user to sell and/or distribute code incorporating the TriDoor
  124.    unit  as  they please as  long as  Triumph Software  is given acceptable
  125.    credit for the door and communications support.
  126.  
  127.      No  registered copy is to  be distributed in any other form other than
  128.    as a compiled and included portion of another program.
  129.  
  130.      The unregistered version  of TriDoor may be distributed freely as long
  131.    as ALL  files that  were  included  in  the  original package  are kept,
  132.    unchanged in any way, during the distribution.
  133.  
  134.      In the  act of  using TriDoor, you are hereby  agreeing to and will be
  135.    held responsible for all of the above listed terms and clauses.
  136.  
  137.      NOTE : When  you register you will recieve  the LATEST running version
  138.    of  TriDoor and it' s documentation.  You will also receive news, in the
  139.    mail, of any new software or  upgrades and will be  entitled to one free
  140.    upgrade (shipping cost  not included) of  any version  of  the  software
  141.    that was written  at up  to six months after  the original  registration
  142.    date.
  143.  
  144.  
  145.  
  146. Triumph Software - TriDoor Documentation                              pg. iii
  147.  
  148.  
  149.  
  150.  
  151.  
  152.                        SOME NOTES ON DOCUMENTATIONS
  153.  
  154.  
  155.      Yes, we all hate reading documentation,  even people  like me who just
  156.    spent four  hours taking the time to write this particular documentation
  157.    file up.
  158.  
  159.      However, with that knowlege,  I have done my best to make this file as
  160.    verbose as  possible without losing  any of  the important  facts and/or
  161.    information.  That is, of course,  with the  exception of the disclaimer
  162.    and licenseing agreement,  which have  to be  long and  annoying  or our
  163.    lawyers will be twice as long and annoying, right?
  164.  
  165.      So, buck up, print this thing out and read it.  Take heart-  it's less
  166.    than twenty   pages-  so far,  anyway.  We'll  see what happens a couple
  167.    versions down the road.
  168.  
  169.  
  170.  
  171. Triumph Software - TriDoor Documentation                              pg. iv
  172.  
  173.  
  174.  
  175.  
  176.  
  177.                               TABLE OF CONTENTS
  178.  
  179.  
  180.      Why Use Tridoor?. . . . . . . . . . . . . . . . . . . . . . . . .001
  181.  
  182.      History of TriDoor. . . . . . . . . . . . . . . . . . . . . . . .002
  183.  
  184.      Who to Contact. . . . . . . . . . . . . . . . . . . . . . . . . .003
  185.  
  186.      Tested Limits of TriDoor. . . . . . . . . . . . . . . . . . . . .004
  187.  
  188.      Features of TriDoor . . . . . . . . . . . . . . . . . . . . . . .005
  189.  
  190.      Command Summary . . . . . . . . . . . . . . . . . . . . . . . . .006    
  191.  
  192.      Reserved Words. . . . . . . . . . . . . . . . . . . . . . . . . .010
  193.  
  194.      Accessable Variables. . . . . . . . . . . . . . . . . . . . . . .011
  195.  
  196.      Things to Come ("The Workbench"). . . . . . . . . . . . . . . . .012     
  197.  
  198.      Programming Hint(s) . . . . . . . . . . . . . . . . . . . . . . .013
  199.  
  200.      Other Products by Triumph Software. . . . . . . . . . . . . . . .014
  201.  
  202.      A Comment on Quality. . . . . . . . . . . . . . . . . . . . . . .015
  203.  
  204.  
  205.  
  206. Triumph Software - TriDoor Documentation                              pg. 001
  207.  
  208.  
  209.  
  210.  
  211.  
  212.                               WHY USE TRIDOOR?
  213.  
  214.  
  215.      The TriDoor communications package provides the programmer with a list
  216.    of many commands and features that I have found extremely useful, if not
  217.    invaluable while  writing  various on-line  doors  for  both my  BBS and 
  218.    others.
  219.  
  220.      No longer is the value of any door program you write hinging upon your
  221.    abilities  to write the  communications drivers and  commands to support 
  222.    them!  Now, with communications equivelents of standard Pascal commands,
  223.    such  as  print()  which  almost  mirrors  Turbo  Pascal's  write()  and
  224.    writeln(), you can sit at your terminal and write any program  for a BBS
  225.    in the same amount of  time and with  the same amount of effort it would
  226.    take to write one for local usage!
  227.  
  228.      The  possibilities  are  endless-  I  personally have written  on-line 
  229.    games,  archive  viewing  utilities,  text/ansi  file viewers, "top-ten"
  230.    user-list  creators  and  I  am  sure I few more  that escape  me at the 
  231.    moment.
  232.  
  233.      How many times have you said to yourself, "Wow, this is a great system
  234.    I  have here, if  only  I  could  add..."  Oh,  sure, you can go out and 
  235.    download  many programs  to do  some of the  things you  need to do, but
  236.    MANY of  those  you  could do  yourself. (And you do not have to pay all 
  237.    those shareware fees, either.)  I can very  definately say  that  if you 
  238.    are a person who  registers their shareware (like  I'm SURE you do) that
  239.    TriDoor will  pay for itself in a  very short period  of time. And  what
  240.    about all the things that you  cannot do yourself?  What do you do then?
  241.    Hire a programmer?
  242.  
  243.      I  frequently find myself saying "If you can't do it with TriDoor, YOU 
  244.    CAN'T DO IT!"  It  is the  easiest  way to  create  a  door.  If  you do
  245.    not  know  Pascal,  it  is worth  learning, just to have this  amount of
  246.    control over your BBS.
  247.  
  248.      This is  the only software  package available of this kind that I have
  249.    ever seen. It's easy, quick, and powerful and you are holding that power
  250.    in your midst.  Dare to make the doors  and on-line  games that you have 
  251.    always wanted!
  252.  
  253.      
  254.  
  255.  
  256. Triumph Software - TriDoor Documentation                              pg. 002
  257.  
  258.  
  259.  
  260.  
  261.  
  262.                              HISTORY OF TRIDOOR
  263.  
  264.  
  265.      TriDoor and  it's  communications support is the  end result of almost
  266.    three years of effort by both Jeremy H. DuBois and myself.  (Christopher
  267.    M. Russo)  We  started one rainy  day when Jeremy  had informed  me that
  268.    he had  managed to  write  some  basic communications  supporting Pascal
  269.    routines.  As  Jeremy already  had a  bulletin  board  system running at
  270.    that time, I suggested that we write an on-line game for it.
  271.  
  272.      And that  is when it all began.  We went from  writing a semi-complete
  273.    and not-too-awful  on-line game  to writing DoorBase,  our first version
  274.    of an  on-line  door  supporting  unit.  Then  I wrote a game on my own-
  275.    Monopolistic  Competition,  followed shortly  thereafter by Monopolistic
  276.    Competition II which was  running off  of a  newer, but  still bedragged
  277.    version of DoorBase.
  278.  
  279.      Then one  day while  trying to write  a terminal program,  we realized
  280.    that the  communcations  routines  that Jeremy had  made were simply not
  281.    fast enough  to  handle all  the  tasking  necessary,  and  at  anything
  282.    above  2400 baud, were  a miserable failure.  Thus,  Jeremy set out once
  283.    again to create newer, faster routines.
  284.  
  285.      I had  quite  a lot  of trouble  dealing with  the  newer routines for
  286.    reasons  which,  I  admit,  are  beyond  my  knowlege.  After  time  and
  287.    perseverence,  however,  I mastered  the  new  routines and re-wrote the
  288.    newest version of DoorBase,  now  called TriDoor  in the interest of our
  289.    newly-founded company.
  290.  
  291.      And thus,  I present  to you  said software and complete documentation
  292.    for the easy usage  and incorporation of  communication and door support
  293.    in your Pascal programs for QuickBBS and clones. I strongly believe that  
  294.    using TriDoor is the easiest, most  user-friendly  way of  writing doors  
  295.    and on-line games available today.
  296.  
  297.      Finally, before  we  commence, I would like  to take a moment to thank
  298.    Jeremy for  all his help and  patience with my  quirky little habits and
  299.    programming nit-picks.  I  have never  given another  teacher  more of a 
  300.    hard time than I  gave him.  Rediculous  as  this  may sound, he  is  an
  301.    inspiration  to me,  and I  thank him  for all he's taught me and all he
  302.    will, undoubtably, teach me in the future.
  303.  
  304.  
  305.  
  306. Triumph Software - TriDoor Documentation                              pg. 003
  307.  
  308.  
  309.  
  310.  
  311.  
  312.                                 WHO TO CONTACT
  313.  
  314.  
  315.      Did  your machine swear in protest  at our software?  Are  you missing
  316.    files  that  should  be  included  in this  release?  Do  you  have  any 
  317.    questions  you  would  like  to  ask  us?  Do  you  have any comments or
  318.    suggestions?  Do you get frustrated with document files?
  319.  
  320.      Well, then- you  may  get  in contact with us  at any of the following
  321.    places/numbers :
  322.  
  323.  
  324.  
  325.             Christopher M. Russo          Voice : (508)264-4376
  326.             Jeremy H. DuBois              Voice : (508)263-7004
  327.  
  328.             Triumph BBS                   Data  : (508)263-4247
  329.  
  330.  
  331.               * If you call our BBS (best way to get in touch 
  332.                 with either  of us) our handles/positions are
  333.                 as follows :
  334.  
  335.             Christopher M. Russo,  a.k.a. "Seymoore"     (SysOp)
  336.             Jeremy H. DuBois,  a.k.a. "Particle Man"  (Co-SysOp)
  337.  
  338.  
  339.      Remember  that those voice  phones are our  HOME phones as  we do  not
  340.    yet have a business line- please  refrain from hassling the other people
  341.    that live there-  NONE of  us will answer "Hello, Triumph Software."  We
  342.    will tell you when we get the business line.
  343.  
  344.      Also  note  that it  is MUCH  easier to get  in contact with me, Chris
  345.    Russo during the school year then it is to get in touch with Jeremy.
  346.  
  347.      We are  also looking out for potential support boards and beta-testing
  348.    systems, so if  you  have a system  and are  interested, make  sure  you 
  349.    inform us of your desire and eligibility.
  350.  
  351.  
  352.  
  353. Triumph Software - TriDoor Documentation                              pg. 004
  354.  
  355.  
  356.  
  357.  
  358.  
  359.                           TESTED LIMITS OF TRIDOOR
  360.  
  361.  
  362.      TriDoor has been run and tested, successfully, on a variety of systems
  363.    ranging from a 15MHz IBM XT with  a 2400 baud modem to  a 25MHz 386 with
  364.    a 9600 baud HST modem.  As far as we know, if your system is fast enough
  365.    to handle your modem, this unit will function without a hitch.
  366.  
  367.      There  are a  few limitations, however, that  we are  aware of at this
  368.    point in time,  and we  are working  on remedies  for said  limits.  The
  369.    constraints are as follows :
  370.  
  371.        * The  only communications  ports supported are COM1 and COM2.
  372.  
  373.        * The Turbo Pascal  commands of  blockread and blockwrite will
  374.          do awful,  unfreindly things.  DO NOT USE THEM until we have
  375.          made a correction to allow for this problem.
  376.  
  377.  
  378.      Those are all of them as far as we are aware.  If you come up with any
  379.    new ones, please contact us immediately and we will either tell you what
  380.    you are doing incorrectly or remedy the problem in a later version.
  381.  
  382.  
  383.  
  384. Triumph Software - TriDoor Documentation                              pg. 005
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                              FEATURES OF TRIDOOR
  391.  
  392.  
  393.      TriDoor  has many advanced,  easy to use features and I  intend to add
  394.    many more  over the  course of  time.  Any  additional features  will be
  395.    tacked  on to  the  actual  program  commands  explanations  with  their 
  396.    appropriate version numbers.  This  document was  originally written for
  397.    the release of Version 1.10 of the software.
  398.  
  399.          * Automatic set-up and support of communications ports.
  400.          * Automatic reading and processing of the file DORINFO1.DEF.
  401.          * Easy to use commands such as PRINT and GETINPUT which will 
  402.            print to the local screen, and the comport if a carrier is 
  403.            detected.
  404.          * Built-in chat mode with word-wrap and highlighted user-
  405.            entered text on the local screen.
  406.          * Boolean variable QUIT which is set to true if ALT-H is
  407.            hit from the local keyboard- allows for programmer-defined
  408.            or non-existant "hang-up" procedures.
  409.          * Easy "caps-lock", and "password-entry" (see "***" instead of
  410.            "hey") modes.
  411.          * Length restriction allowance on input fields.
  412.          * Built-in string capitalization and easy integer/longint to
  413.            string conversion.
  414.          * Built-in direct screen write functions.
  415.          * Automatic status bar displaying time, name and baud rate.
  416.          * Automatic handling of user's time.
  417.          * Built-in routines for clearing user's and local screen.
  418.          * Built-in boolean response "Are you sure?" function.
  419.    V1.26 * Built-in User-Pager.
  420.    V1.26 * Automatic & Disablable "Last Printed" Memory.
  421.    V1.26 * Help Status Bar on Local Screen.
  422.    V1.28 * Auto-sensing of color/monochrome mode.
  423.    V1.30 * Turbo Pascal 5.5 AND 6.0 support.
  424.    V1.38 * ANSI Support.
  425.    V1.40 * User time changeability.
  426.    V1.40 * Auto-hangup (quit:=true) at time<1  (can be disabled).
  427.    V1.40 * System messages in status bar.
  428.  
  429.  
  430.  
  431. Triumph Software - TriDoor Documentation                              pg. 006
  432.  
  433.  
  434.  
  435.  
  436.  
  437.                                COMMAND SUMMARY
  438.  
  439.  
  440.      <01> function offline : boolean;
  441.  
  442.           This function  simply returns the value  TRUE if a carrier in
  443.           the assumed communications  port is not  detected,  and false 
  444.           if a carrier is detected.
  445.  
  446.      <02> function strg( i : integer ) : string;
  447.  
  448.           This function will turn any integer into  a string and return
  449.           the value to the caller.
  450.  
  451.      <03> function bstrg( li : longint ) : string;
  452.  
  453.           The bstrg() function  is identical to the  strg function with
  454.           the exception that it will accept longints.
  455.  
  456.      <04> function ucase( s : string ) : string;
  457.  
  458.           This  function  will take  any string s,  capitalize  it  and
  459.           return it to the calling function.
  460.  
  461.      <05> procedure gotopos( x, y : integer );
  462.  
  463.           The procedure gotopos() is the direct screen write equivelent
  464.           of the Pascal command gotoxy().  It is  necessary to use this
  465.           command with the following two commands.
  466.  
  467.      <06> procedure dwrite( outchr : char; attr : integer );
  468.  
  469.           The dwrite()  function will do  a direct screen  write of the
  470.           character  outchr with  the attribute  (color)  attr  at  the 
  471.           position x,y of the previous function gotopos().
  472.  
  473.      <07> procedure dstr( outstr : string; attr : integer );
  474.  
  475.           This procedure  is identical  to dwrite()  with the exception
  476.           that  it allows  a string  to be  written as  opposed to just
  477.           one character.
  478.  
  479.      <08> function comwait : boolean;
  480.  
  481.           This will tell  you if there  is a  character  waiting in the
  482.           input buffer of the communications port waiting to be read.
  483.  
  484.      <09> function readstats : boolean;
  485.  
  486.           The  readstats()  function  will  read  and  process the file
  487.           DORINFO1.DEF.   In  unregistered  versions,  this command  is
  488.           forced.
  489.  
  490.  
  491.  
  492. Triumph Software - TriDoor Documentation                              pg. 007
  493.  
  494.  
  495.      <10> procedure recordtimeon;
  496.  
  497.           This  function  records  the time  that the  user  enters the
  498.           program.  This is  necessary  if  time management is  to take
  499.           place.  In unregistered versions, this command is forced.
  500.  
  501.      <11> function timeleft : integer;
  502.  
  503.           This  function will  calculate and  return the  time the user
  504.           has left for a given session.
  505.  
  506.      <12> procedure clearcom;
  507.  
  508.           The  clearcom()  procedure will  send  an  IBM  clear  screen
  509.           control code over the modem as well as to the local screen.
  510.  
  511.      <13> function getkey : char;
  512.   
  513.           This  function  will wait  for  a  key to  be  pressed either
  514.           locally,  or  over the  communications port  if a  carrier is
  515.           present.
  516.  
  517.      <14> procedure chat;
  518.  
  519.           The chat() procedure is called when ALT-C is pressed locally.
  520.           It can be called at  will, however, to allow  for user-paging
  521.           of the SysOp if so desired and programmed.
  522.  
  523.  
  524.      <15> function getinput( wrdsize : byte ) : string;
  525.  
  526.           The  getinput()  function is  similar to getkey() except that
  527.           this  function  allows  for  a  string  to  be  entered.  The 
  528.           following variables also apply :
  529.  
  530.             caps := TRUE/FALSE    --  will convert all typed to
  531.                                       uppercase if true.
  532.  
  533.             code := TRUE/FALSE    --  will  show all characters
  534.                                       typed as *'s if true.
  535.  
  536.             wrdsize := n=(1-255)  --  will limit length of user
  537.                                       input to n. 
  538.  
  539.          Note that  in unregistered  versions, these  are automatically
  540.          set to the following values every time you finish a getinput()
  541.          call.
  542.  
  543.                       code := FALSE  /  caps := FALSE  
  544.  
  545.  
  546.  
  547. Triumph Software - TriDoor Documentation                              pg. 008
  548.  
  549.  
  550.      <16> procedure print( s : string );
  551.  
  552.           The  print() procedure  will  print  a string  to  the  local
  553.           screen,  as  well   as  to  the   communications  port  if  a 
  554.           carrier is detected.
  555.  
  556.           To create a carriage return, simply plug in a || anywhere in
  557.           the string to be printed.
  558.  
  559.           For example...
  560.  
  561.              print('My name is george.||Who are you?||||BLAH! ');
  562.  
  563.           would print...
  564.  
  565.              My name is george.
  566.              Who are you?
  567.  
  568.              BLAH! ( <-- cursor would remain here! )
  569.  
  570.           NOTE : When  plugging  variables,  substitue +'s  where  you
  571.                  would normally place ,'s in a write()/writeln().
  572.  
  573.           For example...
  574.  
  575.             print('My name is '+mynamevar+'.||');
  576.  
  577.           Also note that as of V1.26 there is a boolean variable called
  578.           QUEUEOFF.  If  this  variable  is set  to false,  the print() 
  579.           command will always  remember the last thing  printed. (Comes
  580.           in handy when exiting chat-modes and so-forth.)
  581.  
  582.           The  variable that  the  last thing  printed is  stored in is
  583.           QUEUEONE. (a string)
  584.  
  585.      <17> function aysure( s : string ) : boolean;
  586.  
  587.           This  function  will  print   the  string  s  followed  by  a
  588.           "? (Y/[N]) "  and  then  wait  for a  response,  returning  a
  589.           boolean TRUE or FALSE meaning YES or NO respectively.   
  590.  
  591.      <18> procedure sysmessage( s : string );
  592.  
  593.           This procedure will print a string of up to 65 characters in
  594.           the status bar for the SysOp or local user to see.
  595.  
  596.  
  597.  
  598. Triumph Software - TriDoor Documentation                              pg. 009
  599.  
  600.  
  601.      <19> procedure comprint( s : string );
  602.  
  603.           The comprint() procedure  is identical  to print, except that
  604.           it prints SOLELY to the communications port.
  605.  
  606.      <20> procedure angotoxy( x, y : integer );
  607.  
  608.           This is the ANSI equivelant of the Pascal procedure gotoxy().
  609.           If ANSI is disabled, this function will NOT work.
  610.  
  611.      <21> procedure anleft( ls : integer );
  612.  
  613.           This is an ANSI procedure that will move left the number of
  614.           spaces specified in the variable ls.
  615.  
  616.      <22> procedure anright( rs : integer );
  617.  
  618.           This is identical to anleft() except that it goes right
  619.           instead of left.
  620.  
  621.      <23> procedure anclear;
  622.  
  623.           The anclear() procedure is the ANSI equivelant of clearing
  624.           the screen.  Like all ANSI functions and procedures, this 
  625.           does not function if ANSI is disabled.
  626.  
  627.      <24> procedure ancolor( bl, br, fg, bg : integer );
  628.  
  629.           This function will set the ANSI color.  Use the following
  630.           specifications to set it : 
  631.  
  632.             bl = blinking?   0 = no   5 = yes
  633.             br = bright?     0 = no   1 = yes
  634.  
  635.             fg = forground color               bg = background color
  636.  
  637.                  37 : white                         47 : white
  638.                  36 : cyan                          46 : cyan
  639.                  35 : purple                        45 : purple
  640.                  34 : blue                          44 : blue
  641.                  33 : yellow                        43 : yellow
  642.                  32 : green                         42 : green
  643.                  31 : red                           41 : red
  644.                  30 : black                         40 : black
  645.  
  646.  
  647.  
  648. Triumph Software - TriDoor Documentation                              pg. 010
  649.  
  650.  
  651.  
  652.  
  653.  
  654.                                RESERVED WORDS
  655.  
  656.  
  657.      The following list of words are  reserved (used by TriDoor) and not to
  658.    be re-defined  by any program incorporating  TriDoor as  a conflict will 
  659.    arise that will  result in non-functionability,  to some  degree, of the 
  660.    final resultant program/software.
  661.  
  662.  
  663.          tridr55?                userstatrec             sysstatrec
  664.          user                    sys                     scrnpos
  665.          wrdsize                 local                   logontime
  666.          code                    quit                    caps
  667.          waitk                   tdver                   tddate
  668.          CR                      BS                      offline
  669.          strg                    bstrg                   ucase
  670.          dwrite                  gotopos                 dstr
  671.          statusbar               readstats               recordtimeon
  672.          timeleft                clearcom                getkey
  673.          chat                    checkkey                getinput
  674.          print                   aysure                  setup
  675.          buffptr                 buffrec                 noise
  676.          comintvect              queueoff                timeoff
  677.          comchar                 key                     queueone
  678.          buffertop               head                    tail
  679.          oldint                  exitsave                IER
  680.          IIR                     LCR                     MCR
  681.          LSR                     MSR                     RLS
  682.          RDA                     TRE                     MSI
  683.          PIC                     EOI                     picmask
  684.          enable1                 enable2                 disable1
  685.          disable2                bioseg                  keyhead
  686.          keytail                 EVEN                    ODD
  687.          NONE                    COM1                    COM2
  688.          COM3                    COM4                    IRQ2
  689.          IRQ3                    IRQ4                    setupcom
  690.          setparams               carrier                 shutdowncom
  691.          setupbuffer             charready               readcom
  692.          writecom                comstr                  clearbuffer
  693.          finishcom               screnmode               getmode
  694.          autohang                ansi                    sysmessage
  695.          comwait                 anleft                  anright
  696.          angotoxy                ancolor                 anclear
  697.  
  698.  
  699.    This  list  will  be  updated as  necessary, noting  appropriate version
  700.    numbers with their corresponding added words.
  701.  
  702.    Due to  the  nature of Turbo  Pascal,  all words are considered reserved
  703.    both in capitals and in lowercase letters.
  704.  
  705.  
  706.  
  707. Triumph Software - TriDoor Documentation                              pg. 011
  708.  
  709.  
  710.  
  711.  
  712.  
  713.                            ACCESSABLE VARIABLES
  714.  
  715.  
  716.      Here is a  list  of accessable variables and  their descriptions.  You
  717.    may  work with these as you  like at  any time during program operation.
  718.    I would, however, avoid changing them as much as possible.
  719.  
  720.  
  721.       type
  722.         userstatrec =
  723.           record
  724.             firstname,                        User First Name
  725.             lastname,                         User Last Name
  726.             citystate  : string[40];          User City, State
  727.             comport,                          User Comport
  728.             baud,                             User Baud
  729.             refnum,                           [ not yet implemented ]
  730.             security   : integer;             User Security
  731.             time       : word;                User Time Left
  732.           end;
  733.  
  734.         sysstatrec =
  735.           record
  736.             name,                             System Name
  737.             sysopfirst,                       SysOp First Name
  738.             sysoplast   : string[40];         SysOp Last Name
  739.           end;
  740.  
  741.       var
  742.         user     : userstatrec;               Record to access userstatrec
  743.         sys      : sysstatrec;                Record to access sysstatrec
  744.         code,                                 See *'s at getinput()
  745.         caps,                                 Force caps at getinput()
  746.         queueoff,                             Turn off print() queue
  747.         timeoff,                              Disable Time Left readout
  748.         ansi,                                 Turn ANSI graphics on
  749.         autohang : boolean;                   Turn on quit:=true at time<1
  750.         queueone : string;                    Store for print() command
  751.  
  752.  
  753.  
  754.    So, for example,  if you wanted to know the user's baud rate,  you would
  755.    look at user.baud- NOT userstatrec.baud.
  756.  
  757.  
  758.  
  759. Triumph Software - TriDoor Documentation                              pg. 012
  760.  
  761.  
  762.  
  763.  
  764.  
  765.                      THINGS TO COME ("THE WORKBENCH")
  766.  
  767.  
  768.      The  following is  a list of some  of the things that  are most likely
  769.    going to be  added in future  versions  of this  software.  Or  they are
  770.    things that we are,  at the very least, seriously  considering.  This is
  771.    a far from complete list,  but it  gives you an idea of what I am up to.
  772.    If you have any further ideas or suggestions, please contact us and tell
  773.    us what you think.
  774.  
  775.  
  776.           * Built-in ANSI capabilities.
  777.           * Config file for directory paths/chat color settings/etc
  778.           * Highlighted chat text over modem as well as locally
  779.     V1.28 * Auto-sensing of color
  780.     V1.30 * Turbo Pascal 6.0 support (pending the arrival of 6.0)
  781.           * Support for other BBSes such as PCBoard and Fido
  782.     V1.26 * Incorporation of communications routines directly into
  783.             TriDoor unit
  784.           * COM3 and COM4 support
  785.     V1.26 * Help menu un status-bar for local screen
  786.           * Ability to force-capitalize first letter of every word
  787.             in getinput() function
  788.           * Ability to access all communications commands in main
  789.             communications unit
  790.     V1.26 * Ability for SysOp to Page User
  791.  
  792.  
  793.  
  794. Triumph Software - TriDoor Documentation                              pg. 013
  795.  
  796.  
  797.  
  798.  
  799.  
  800.                             PROGRAMMING HINT(S)
  801.  
  802.  
  803.      Here  are a  few ideas  to  get you  going.  TriDoor  is  written very
  804.   flexibly to allow for you to do essentially as you like with the commands
  805.   and to  even make  new commands out  of the  original ones  and some work
  806.   of your own.   However,  due  to  the flexibility  involved, some  things
  807.   may  seem  confusing,  or just  not  occur to you right away.  Over time,
  808.   as I think of these things, I will place them in this area.
  809.  
  810.  
  811.       * Do you want the SysOp to see something that the user will not?
  812.         Simply  use a writeln() instead  of print().  It's always good
  813.         to make it  obvious to  the SysOp  that the user is not seeing
  814.         that text, though!  A standard  way of doing  this is by using
  815.         a small ANSI block before the text and high-lighting it.
  816.  
  817.       * If you  are going  to use the  status-bar,  make sure that you
  818.         recordtimeon() (preferably  before statusbar()) or you may get
  819.         a very ugly number in the "Time Left :" area.
  820.  
  821.       * If  you make  a door that  supports ANSI make sure  to ask the
  822.         users if they  can use ANSI first- keep  a log file with their
  823.         settings to save  them from answering everytime  they  use the
  824.         door/on-line game.
  825.  
  826.       * Try not to exclude non-ANSI users from your door.  It's a sign
  827.         of a lazy/unthinking programmer.  Better than 35% of BBS users
  828.         DO NOT have ANSI capabilities- don not limit yourself and your
  829.         program!
  830.  
  831.       * Always remember that  a quick, efficient, well-written program
  832.         that does  not do much is better than a  slow, sloppy, poorly-
  833.         organized one that does more.
  834.  
  835.       * Remember that many  bulletin board systems  run better if they
  836.         stay in memory  while dropping to dos  to run a door, and many
  837.         systems  do not have more  than 640k-1 meg  of RAM.   If  your
  838.         program  requires more, try to  break it up into pieces to run
  839.         more efficiently.  If you  have an  update program  that needs
  840.         to be run but once per day, make it a seperate one.
  841.  
  842.  
  843.  
  844. Triumph Software - TriDoor Documentation                              pg. 014
  845.  
  846.  
  847.  
  848.  
  849.  
  850.                     OTHER PRODUCTS BY TRIUMPH SOFTWARE
  851.  
  852.  
  853.      The  following  products  are  also  available from  Triumph Software.
  854.    For  more information on these products or specific consulting services,
  855.    please contact us.
  856.  
  857.  
  858.        TriComm . . . . . . . . . . . . . . . . . . . .Registered : $30
  859.  
  860.           TriComm is the original communications unit compiled for
  861.           Turbo Pascal 5.5 and used in the creation of TriDoor. It
  862.           currently  supports COM1 and  COM2 and  runs at all baud
  863.           rates.  (Has been tested up to over 9600 baud)
  864.  
  865.  
  866.        TriUser . . . . . . . . . . . . . . . . . . . .Registered : $25
  867.  
  868.           TriUser is an on-line QuickBBS user editor written using
  869.           the TriDoor  on-Line  door support  unit.  It also takes
  870.           advantage of TriDoor's ANSI support features.
  871.  
  872.  
  873.        Monopolistic Competition II . . . . . . . . .Coming This Spring
  874.  
  875.           Monopolistic  Competition  II  is  the  latest  craze in
  876.           on-line Space  Trader games.  It combines all the thrill
  877.           of making  money, with  the additional  spice  of  semi-
  878.           intelligent  Interstellar Police,  free-roaming  traders
  879.           and a sarcastic and greedy god named Victor.
  880.  
  881.  
  882.  
  883. Triumph Software - TriDoor Documentation                              pg. 015
  884.  
  885.  
  886.  
  887.  
  888.  
  889.                            A COMMENT ON QUALITY
  890.  
  891.  
  892.      To finalize,  I would  like to take  a moment to voice  my thoughts on
  893.    quality in programs and programming.
  894.  
  895.      I  have spent  over eight  years working  on and  with bulletin  board
  896.    systems,  an equal  amount of time  programming both  at an  amateur and
  897.    a professional level,  and three years or  more programming for bulletin 
  898.    board systems.
  899.  
  900.      In that time I  have seen many  doors and many bulletin board systems,
  901.    and  I have noticed so many sloppy doors and on-line games that if I had
  902.    a computer for every  one I have ever seen,  I would be able to put them 
  903.    together and  form a  top-of-the-line  VAX with tint-control, a built-in 
  904.    microwave and a television.
  905.  
  906.      I can't  tell you how many  times I have run  a program and  then been
  907.    asked,  infuriatingly, "Cannot  find  BRUNxx.EXE.  New Path?"  or  found 
  908.    that a program would literally crash inside of two  minutes of operation
  909.    on any machine that I could try it on. 
  910.  
  911.      And  all the programs  that I  saw grinding  away at the disk-drive as
  912.    they  either accessed a massive load of disorganized data or simply were 
  913.    running in the  slowest possible languages and needed three days to load 
  914.    360k of marginally organized data.
  915.  
  916.      Then  there were the programs  that simply crashed  without a peep, or
  917.    crashed and  threw some  sickening statement  like "KILLROY DEATH NOTICE
  918.    #093284AF84UAREDEAD" at you as you sat in bewilderment.
  919.  
  920.      Well, I  would gladly  trade in my  suped-up VAX for an opportunity to
  921.    scream very  loudly at every single  one of  those programmers  and then
  922.    throw a programming etiquette book at them.
  923.  
  924.      I am  the pickiest person on  earth when  it comes  to programming, so
  925.    you can be  assured  that any  product that  you ever  get from  Triumph
  926.    Software  has been  brutally  cirticized  and abused  to make sure it is
  927.    doing everything it should be doing, doing it well, and then some.
  928.  
  929.      If  I missed  something, I will be  ever amazed, but I assure you that
  930.    I literally don't sleep until the problem is fixed.  (Helloooo, coffee!)
  931.  
  932.      I hope  you enjoy  this and all of our programs and  find them easy to
  933.    use and  well-written.  If you  have suggestions or  complaints,  please
  934.    contact  us/me as  we/I  are/am always  happy  to hear  them  and try to
  935.    incorporate them.
  936.  
  937.  
  938.                                 Happy Programming!
  939.  
  940.                                  -Christopher M. Russo
  941.